package co.recloud.ariadne.request;

import java.util.Map;
import java.util.Set;

import co.recloud.ariadne.model.Location;
import co.recloud.ariadne.model.logical.Transaction;

public class DataRequest extends Request {
	/**
	 * 
	 */
	private static final long serialVersionUID = 9126451398829682154L;
	public static final int GET = 1;
	public static final int PUT = 2;
	private int type;
	private Transaction transaction;
	private String schema;
	private String columnFamily;
	private String key;
	private Set<String> columns;
	private Map<String,Map<String,Map<String,Map<String,Object>>>> data;
	private Map<String, Map<String, Map<String, Boolean>>> blindWrite;
	private Location primary;
	/**
	 * @return the transaction
	 */
	public Transaction getTransaction() {
		return transaction;
	}
	/**
	 * @param transaction the transaction to set
	 */
	public void setTransaction(Transaction transaction) {
		this.transaction = transaction;
	}
	/**
	 * @return the schema
	 */
	public String getSchema() {
		return schema;
	}
	/**
	 * @param schema the schema to set
	 */
	public void setSchema(String schema) {
		this.schema = schema;
	}
	/**
	 * @return the columnFamily
	 */
	public String getColumnFamily() {
		return columnFamily;
	}
	/**
	 * @param columnFamily the columnFamily to set
	 */
	public void setColumnFamily(String columnFamily) {
		this.columnFamily = columnFamily;
	}
	/**
	 * @return the key
	 */
	public String getKey() {
		return key;
	}
	/**
	 * @param key the key to set
	 */
	public void setKey(String key) {
		this.key = key;
	}
	/**
	 * @param type the type to set
	 */
	public void setType(int type) {
		this.type = type;
	}
	/**
	 * @return the type
	 */
	public int getType() {
		return type;
	}
	/**
	 * @param data the data to set
	 */
	public void setData(Map<String,Map<String,Map<String,Map<String,Object>>>> data) {
		this.data = data;
	}
	/**
	 * @return the data
	 */
	public Map<String,Map<String,Map<String,Map<String,Object>>>> getData() {
		return data;
	}
	/**
	 * @param columns the columns to set
	 */
	public void setColumns(Set<String> columns) {
		this.columns = columns;
	}
	/**
	 * @return the columns
	 */
	public Set<String> getColumns() {
		return columns;
	}
	/**
	 * @param blindWrite the blindWrite to set
	 */
	public void setBlindWrite(Map<String, Map<String, Map<String, Boolean>>> blindWrite) {
		this.blindWrite = blindWrite;
	}
	/**
	 * @return the blindWrite
	 */
	public Map<String, Map<String, Map<String, Boolean>>> getBlindWrite() {
		return blindWrite;
	}
	/**
	 * @param primary the primary to set
	 */
	public void setPrimary(Location primary) {
		this.primary = primary;
	}
	/**
	 * @return the primary
	 */
	public Location getPrimary() {
		return primary;
	}
}
